Make moving subwindows correctly handle native windows
authorAlexander Larsson <alexl@redhat.com>
Tue, 20 Jan 2009 22:03:16 +0000 (23:03 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:15:20 +0000 (10:15 +0200)
commit905d3289330af0b66f3efffc58f14eb7e7f2af56
tree34fb632732e8da80eb156c5376b5a2f46fe59193
parentdf4f4c14c7db72fbe003c3c122efc6ae46001fd5
Make moving subwindows correctly handle native windows

Whenever a native window is moved this causes an immediate change in
the window (the window content is copied). This change conflicts can
conflict with outstanding moves or other cached changed, so we need
to flush all outstanding moves in the related windows.

To simplify the code for window move/resize the toplevel version was
split out to its own function.

Move native windows after recomputing so that we get the right new
shape before moving (and the implied copy). This means we're not
copying too much data.

Take into account the area of a moved window that contains native
subwindows, as these affect things in two ways:

First of all we shouldn't copy the original window location, as that
is copied by the native window move.

Secondly, we can't copy things  that would end up copying from the
native window move destination, as the data that used to be there is
now destroyed by the native window move.
gdk/gdkwindow.c